home *** CD-ROM | disk | FTP | other *** search
Oberon Text | 1995-12-25 | 2.0 KB | 68 lines |
- Syntax10.Scn.Fnt
- Syntax10b.Scn.Fnt
- MODULE Out;
- (* Stream-oriented text output, MR 1992, NW 26.11.92 *)
- (* Procedures Fx from Out from Loinz added, Ralf Degner 25.12.95 *)
- IMPORT Texts, Oberon;
- VAR W: Texts.Writer;
- PROCEDURE Char*(ch: CHAR);
- BEGIN Texts.Write(W, ch); Texts.Append(Oberon.Log, W.buf)
- END Char;
- PROCEDURE String*(str: ARRAY OF CHAR);
- BEGIN Texts.WriteString(W, str); Texts.Append(Oberon.Log, W.buf)
- END String;
- PROCEDURE Int*(i, n: LONGINT);
- BEGIN Texts.WriteInt(W, i, n); Texts.Append(Oberon.Log, W.buf)
- END Int;
- PROCEDURE Real*(x: REAL; n: INTEGER);
- BEGIN Texts.WriteReal(W, x, n); Texts.Append(Oberon.Log, W.buf)
- END Real;
- PROCEDURE LongReal*(x: LONGREAL; n: INTEGER);
- BEGIN Texts.WriteLongReal(W, x, n); Texts.Append(Oberon.Log, W.buf)
- END LongReal;
- PROCEDURE Ln*;
- BEGIN Texts.WriteLn(W); Texts.Append(Oberon.Log, W.buf)
- END Ln;
- PROCEDURE Open*;
- VAR r: Texts.Reader; ch: CHAR;
- BEGIN
- Texts.OpenReader(r, Oberon.Log, Oberon.Log.len-1); Texts.Read(r, ch);
- IF ch # 0DX THEN Ln END
- END Open;
- (* Fx from Linz *)
- PROCEDURE F0 (s: ARRAY OF CHAR; x: ARRAY OF LONGINT);
- VAR i, j: INTEGER;
- BEGIN
- (*CheckOpen*); i := 0; j := 0;
- WHILE s[i] # 0X DO
- IF s[i] = "$" THEN Ln
- ELSIF s[i] = "#" THEN Int(x[j], 0); INC(j)
- ELSE Texts.Write(W, s[i])
- END;
- INC(i)
- END;
- Texts.Append(Oberon.Log, W.buf)
- END F0;
- PROCEDURE F* (s: ARRAY OF CHAR; x: LONGINT);
- VAR a: ARRAY 4 OF LONGINT;
- BEGIN
- a[0] := x; F0(s, a)
- END F;
- PROCEDURE F2* (s: ARRAY OF CHAR; x, y: LONGINT);
- VAR a: ARRAY 4 OF LONGINT;
- BEGIN
- a[0] := x; a[1] := y; F0(s, a)
- END F2;
- PROCEDURE F3* (s: ARRAY OF CHAR; x, y, z: LONGINT);
- VAR a: ARRAY 4 OF LONGINT;
- BEGIN
- a[0] := x; a[1] := y; a[2] := z; F0(s, a)
- END F3;
- PROCEDURE F4* (s: ARRAY OF CHAR; x, y, z, u: LONGINT);
- VAR a: ARRAY 4 OF LONGINT;
- BEGIN
- a[0] := x; a[1] := y; a[2] := z; a[3] := u; F0(s, a)
- END F4;
- BEGIN Texts.OpenWriter(W); Open
- END Out.
-